import { setToken, getToken, removeToken } from '@/utils/auth'
import { login } from '@/api/user'
export default {
  namespaced: true,
  // 存储数据
  state: {
    // 如果token没有值 就获取cookie本地存储的token
    token: getToken() || null
  },
  // 修改同步数据
  mutations: {
    // 定义token 的mutations
    setToken(state, newToken) {
      state.token = newToken
      // 保存token到本地
      setToken(newToken)
    },
    // 删除token
    removeToken(state) {
      state.token = null // 删除vuex中的token
      removeToken(state)
    }
  },
  // 修改异步数据
  actions: {

    // actions的定义格式
    // 方法名(context,参数)
    async userLogin(context, obj) {
      console.log('actions userLogin', context, obj)
      // 调用ajax做登录请求
      const res = await login(obj)

      // 如果在 actions 要修改 state 中的数据 是要调用 mutations
      // context.commit('mutations方法名',参数)
      context.commit('setToken', res.data)
    }
  }
}

